import sqlite3 from 'sqlite3'
import { fileURLToPath, URL } from 'url'
import path from 'path'
import timedTaskAPI from '../CloudTask/timedTask.js'
// 获取当前文件的 URL
const __filename = fileURLToPath(import.meta.url)
const __dirname = path.dirname(__filename)
// 设置数据库文件的路径为当前目录下的 myDatabase.db
const dbPath = path.resolve(__dirname, 'myDatabase.db')
// 创建一个数据库连接
const pool = new sqlite3.Database(dbPath, (err) => {
  if (err) {
    // 如果发生错误，则输出错误信息
    console.error(err.message)
  } else {
    console.log('Connected to the myDatabase.db database.')
  }
})
// 创建 task 表（如果不存在）
const createTaskTableSql = `
CREATE TABLE IF NOT EXISTS task (
  id INTEGER PRIMARY KEY AUTOINCREMENT,
  task_name TEXT DEFAULT NULL,
  share_id TEXT DEFAULT NULL,
  share_file_id TEXT DEFAULT NULL,
  share_code TEXT DEFAULT NULL,
  access_code TEXT DEFAULT NULL,
  share_mode INTEGER DEFAULT NULL,
  share_count INTEGER DEFAULT NULL,
  update_time TEXT DEFAULT (strftime('%Y-%m-%d %H:%M:%S', 'now')),
  save_path_id TEXT DEFAULT NULL,
  save_path_name TEXT DEFAULT NULL,
  save_type INTEGER DEFAULT 0,
  status INTEGER DEFAULT 1,
  create_time TEXT DEFAULT (strftime('%Y-%m-%d %H:%M:%S', 'now')),
  create_id INTEGER DEFAULT NULL,
  deleted INTEGER DEFAULT 0,
  task_count INTEGER DEFAULT NULL,
  description TEXT DEFAULT NULL,
  share_url TEXT DEFAULT NULL,
  login_name TEXT DEFAULT NULL,
  episode INTEGER DEFAULT NULL,
  episode_total INTEGER DEFAULT NULL
);
`
pool.run(createTaskTableSql, (err) => {
  if (err) {
    console.error('Table creation failed: ' + err.message)
  } else {
    console.log('Task table created or verified successfully.')
  }
})

// 创建 users 表（如果不存在）
const createUserTableSql = `
CREATE TABLE IF NOT EXISTS users (
  login_name TEXT NOT NULL,
  nickname TEXT DEFAULT NULL,
  sessionKey TEXT DEFAULT NULL,
  cookies TEXT DEFAULT NULL,
  update_time TEXT DEFAULT NULL,
  account TEXT DEFAULT NULL,
  password TEXT DEFAULT NULL,
  time_interval INTEGER DEFAULT 30,
  is_execute INTEGER DEFAULT 0,
  timer TEXT DEFAULT NULL,
  ding_talk_token TEXT DEFAULT NULL,
  tg_bot_token TEXT DEFAULT NULL,
  tg_chat_id TEXT DEFAULT NULL,
  PRIMARY KEY (login_name)
);
`
pool.run(createUserTableSql, (err) => {
  if (err) {
    console.error('Table creation failed: ' + err.message)
  } else {
    console.log('Users table created or verified successfully.')
  }
})

// // 查询users表的信息
// const getTableInfoSql = `
// PRAGMA table_info(users);
// `

const getTableInfoSql = `
SELECT * FROM users;
`
pool.all(getTableInfoSql, [], (err, rows) => {
  if (err) {
    console.error('DB/db.js》〉获取用户表信息失败:', err.message)
    return
  }
  if (rows.length > 0) {
    rows.forEach((row) => {
      timedTaskAPI.createTimedTask(row.login_name)
    })
  }
})

//   // 输出表结构
//   rows.forEach((row) => {
//     console.log(`列名: ${row.name}, 类型: ${row.type}`)
//   })
// })
// // 关闭数据库连接
// pool.close((err) => {
//   if (err) {
//     console.error('Unable to close the database connection: ' + err.message)
//   } else {
//     console.log('Database connection closed.')
//   }
// })

export default pool
